1) const [x, y] = await Promise.all([f1(), f2()]);
или, как вариант,
const px = f1();
const py = f2();
const x = await px;
const y = await py;
эти два варианта чуть по-разному ведут себя в случае отклоненного промиса, но если всё нормально зарезолвится, то одинаково.
ещё есть Promise.allSettled, это как раз на случай реджектов.
2)
const delay = (ms) => new Promise((r) => setTimeout(r, ms));
...
await delay(2000);